home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
081
/
oecc_106.arc
/
OECC.DOC
< prev
next >
Wrap
Text File
|
1987-09-12
|
11KB
|
361 lines
OOOOOOOOOOOOO OOOOOOOOOOOOO OOOOOOOOOOOOO OOOOOOOOOOOOO
OO OO OO OO OO
OO OO OO OO OO
OO OO OO OO OO
OO OO OO OO OO
OO OO OOOOOOOOOO OO OO
OO OO OO OO OO
OO OO OO OO OO
OO OO OO OO OO
OO OO OO OO OO
OOOOOOOOOOOOO OOOOOOOOOOOOO OOOOOOOOOOOOO OOOOOOOOOOOOO
The High Touch Language Compiler
Version 1.00
by George A. Stanislav
Copyright (C) 1987, George A. Stanislav. All Rights Reserved.
1
OECC, Version 1.00 George A. Stanislav
What is OECC?
=============
If you have not read OECL.DOC, please do. It describes Opus
Embedded Command Language. OECC (Opus Embedded Command Compiler)
is a compiler for OECL.
In Other words, OECC takes a text file containing OECL
tokens as its input. It processes the tokens, replacing them by
OEC and oANSI codes. It sends the text with the embedded commands
to the output. It will not modify the input. Unless of course you
want the output to go to the input file. But you probably do not
want to do that. It would not work properly.
Is OECC a full implementation of OECL?
======================================
Yes, with one exception: Version 1.00 does not support
labels. It does compile the [goto] token properly but will not
insert a label.
How do I use OECC?
==================
There are two ways of doing it. The first is:
oecc infile outfile
where infile is the name of the input file containing OECL
tokens, outfile will be the file where you want OECC to send its
output. If a file of that name already exists, OECC will
overwrite it.
The second way:
oecc infile
In this case, OECC will read its input from infile and send its
output to the screen.
What is MONITOR.EXE?
====================
A modified version of Wynn Wagner's program TESTVID.EXE. The
only difference is that TESTVID takes its input from a file,
MONITOR from stdin. Therefore, MONITOR can be used for piping.
2
OECC, Version 1.00 George A. Stanislav
Can you explain how to use "piping"?
====================================
Several sample files containing OECL tokens came in the .ARC
file with OECC. All of them have the extension .OEC. They are not
meant to create flashy screens, just give you an idea how to use
OECL. The one called OECTEST.OEC was used to alpha test OECC. You
can try to see what OECC does with it in three steps.
1. Type:
oecc oectest.oec
OECC will read the file OECTEST.OEC, compile it and send the
output to the screen. It will warn you if there are any unknown
tokens in the file.
2. The output of point 1 consists mostly of control
characters and does not give you an idea what Opus will do with
it. That's where the piping is useful. Try this:
oecc oectest.oec | monitor
The pipe symbol `|' (not `:') will take the screen output of
OECC and convert it into the input of MONITOR.EXE which in turn
will convert oANSI into ANSI and send it to your screen. Make
sure you have ANSI.SYS properly installed.
3. Now you may want to play with oectest.oec and try to
improve it. It is not quite perfect, to give you something to
experiment with. Once steps 1 and 2 give you satisfactory
results, type:
oecc oectest.oec oectest.bbs
OECTEST.BBS is a file that can be used with Opus.
Can I give OECC to others?
==========================
Yes, as long as these conditions are met:
1. You will give them the whole package contained in
OECC_100.ARC. That includes the .ARC file itself.
2. You will not charge them for OECC.
3. Companies that sell diskettes with Public Domain programs
are expressly prohibited to distribute OECC. OECC is not in
3
OECC, Version 1.00 George A. Stanislav
public domain. It is copyrighted by George A. Stanislav.
Do I have to pay for OECC?
==========================
Not in the connection with your own personal use. Not in the
connection with a Church related use (any denomination).
On the other hand, corporate and governmental users must not
use OECC without first sending $10 to George A. Stanislav, P.O.
Box 129, Natrona Heights, PA 15065, for each copy of OECC they
use. The same restriction applies to hospitals.
Why is OECC.EXE so small?
=========================
OECC was written in assembly language to give it speed and
small size.
Do I need a database to work with OECC?
=======================================
No need for a database. All the data it needs has been
placed in the program itself. Because of that you can use OECC
from anywhere on your system as long as OECC.EXE is in a
directory pointed to by PATH, or you use the proper path in front
of oecc (e.g., c:\opus\util\oecc bulletin.oec bulletin.bbs).
Do the input and output file have to be in the same directory?
==============================================================
They can be anywhere on the system. You can use something
like this:
c:\opus\util\oecc d:\oecc\bulletin.oec a:\misc\bulletin.bbs
What do I do when new versions of Opus add more codes?
======================================================
Get a new version of OECC which will include the new codes.
OECL (the language) will be expanded whenever needed.
oANSI has a code to compress repeat characters. Why does OECL not
=================================================================
have a token for that?
======================
No token is needed! OECC compresses a group of four or more
equal characters automatically.
4
OECC, Version 1.00 George A. Stanislav
Will 26 equal characters place a ^Z in the code?
=================================================
While that would be the correct oANSI code, testing has
shown that ^Z even as a part of the oANSI control code would make
Opus believe it has arrived at the end of the file. Therefore,
any group of 26 characters will be treated as one character plus
a group of 25 characters. Of course, groups of more than 26 equal
characters will be compressed to just three bytes. Only groups of
exactly 26 equal characters will be compressed to 4 bytes - to
avoid ^Z.
I placed "[sline][lightgreen]Hi sysop" in the file. Why did it
==============================================================
say "Hi sysop" to all users?
============================
That is an idiosyncrasy in oANSI. The oANSI code for
[lightgreen] is ^V^A^J. But ^J is the code for line feed (end of
line). When Opus reads the code for [sline] and the caller is
bellow sysop level, it reads the rest of the line but does not
check if the characters are a part of the control codes.
Therefore, it interprets the ^J as the end of the line. It
believes "Hi sysop" is on a different line and displays it. A
possible solution is by placing the color code BEFORE [sline],
like this:
"[lightgreen][sline]Hi, sysop."
Better yet, do not use light green color at a line which is to be
displayed only to certain access levels.
What computers does OECC work at?
=================================
OECC was written on a Tandy 1000, an IBM compatible
computer. It uses no direct access to the hardware. Therefore, it
should work on any MS/PC DOS computer. Please report any
incompatibilities to the author. But I really do not expect any.
What kind of warranties do I get?
=================================
Are you kidding? No warranty expressed or implied, except
that it has been working fine on my computer as well as those of
the beta testers.
5
OECC, Version 1.00 George A. Stanislav
What about support?
===================
You can try. Send me matrix mail to 129/39. If I can I will
answer. No guarantee though.
<<<< * * * >>>>
6